This invention relates generally to semi-conductor storage arrays, and, more particularly, to integrated-circuit or monolithic storage arrays in which there is a requirement for simultaneous access through more than one input or output port. Semiconductor storage arrays or register files are used in a wide variety of digital applications. In many of these applications, it is required, or at least is highly desirable not only that there be simultaneous reading and writing access to a storage array, but also that there be more than one input port for writing data into the array and more than one output port for reading data from the array. A typical application in the digital signal processing field is an "in-place" algorithm for performing the fast Fourier transform (FFT). In an in-place algorithm, input data are loaded into an array, then the data elements are repeatedly read from the array, operated on in accordance with the algorithm, and stored back in the array, which contains output data at the completion of the process. In applications such as this, simultaneous access to the array through multiple ports is essential for high-speed computation.
In the past, various storage devices have been proposed having more than one input or output access port. For example, in U.S. Pat. No. 4,287,575 issued in the names of Eardley et al., there is disclosed a storage cell having two access ports which may be either used as simultaneous read ports or used together as a single write port. However, it is not possible to read and write simultaneously in the Eardley device. Other patents disclosing two-port memory devices are Robinson, U.S. Pat. No. 4,138,739, Chlig, U.S. Pat. No. 4,280,197 and Dachtera, U.S. Pat. No. 4,127,899.
U.S. Pat. No. 3,675,218 issued in the name of Sechler, also discloses a two-port memory cell, and a four-port device is illustrated, in FIG. 4, but not described in detail. The present invention is directed to an improved multiport device having the same objective as the Sechler FIG. 4 device, i.e., to provide simultaneous reading access through more than one read port and simultaneous writing access through more than one write port. Although Sechler achieves this objective, his FIG. 4 circuitry is not completely satisfactory from two standpoints: immunity to noise and interference between ports, and suitability for efficient implementation in monolithic form.
It will be apparent from the foregoing that there is still a significant need in the field of semi-conductor storage arrays for an improved device having multiple input ports and multiple output ports that may be accessed simultaneously. The present invention satisfies this need, and overcomes the drawbacks of the prior art.